//
//  HMMessageTableViewController.swift
//  01-SinaWeibo
//
//  Created by 周英培 on 16/5/19.
//  Copyright © 2016年 周英培. All rights reserved.
//

import UIKit

class HMMessageTableViewController: HMBasicTableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //设置未登录界面
        visitorLoginView.updateUI("visitordiscover_image_message", title: "关注一些人,回到这里看看有什么惊喜")
        
        //设置右边测试按钮
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "show", target: self, action: #selector(changeBadgeValue))
        
        //设置按钮右上方提示的小图标
        tabBarItem.badgeValue = "\(10)"
        setBackground()
    }
    
    @objc private func changeBadgeValue() {
    
        //先让小图标为nil
        tabBarItem.badgeValue = nil
        
        //设置小图标的随机值
        tabBarItem.badgeValue = "\(random() % 100)"
    
    }
    
    //设置tabBarItem的背景图片
    func setBackground() {
    
        for subview in self.tabBarController!.tabBar.subviews {
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!) {
                for v in subview.subviews {
                    if v.isKindOfClass(NSClassFromString("_UIBadgeView")!) {
                        for begview in v.subviews {
                            if begview.isKindOfClass(NSClassFromString("_UIBadgeBackground")!) {
                                print(begview)
                                let image = UIImage(named: "main_badge")
                                
                                //调用 _UIBadgeBackground类型的对象的KVC方法 简介设置值
                                begview.setValue(image, forKey: "_image")
                                
                            }
                        }
                    }
                }
            }
        }
    
    }
 }

extension HMMessageTableViewController {
    /*
     ／
     override func didReceiveMemoryWarning() {
     super.didReceiveMemoryWarning()
     // Dispose of any resources that can be recreated.
     }
     
     // MARK: - Table view data source
     
     override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
     // #warning Incomplete implementation, return the number of sections
     return 0
     }
     
     override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     // #warning Incomplete implementation, return the number of rows
     return 0
     }
     
     /*
     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
     let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
     
     // Configure the cell...
     
     return cell
     }
     */
     
     /*
     // Override to support conditional editing of the table view.
     override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
     // Return false if you do not want the specified item to be editable.
     return true
     }
     */
     
     /*
     // Override to support editing the table view.
     override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
     if editingStyle == .Delete {
     // Delete the row from the data source
     tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
     } else if editingStyle == .Insert {
     // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
     }
     }
     */
     
     /*
     // Override to support rearranging the table view.
     override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
     
     }
     */
     
     /*
     // Override to support conditional rearranging of the table view.
     override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
     // Return false if you do not want the item to be re-orderable.
     return true
     }
     */
     
     /*
     // MARK: - Navigation
     
     // In a storyboard-based application, you will often want to do a little preparation before navigation
     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
     // Get the new view controller using segue.destinationViewController.
     // Pass the selected object to the new view controller.
     }
     */
     */
}
